Skip to content

Conversation

@b-viguier
Copy link

Why

When stacking decorators, all inlined services are prefixed by a .. This character is explicitly removed in the service map since this commit.

But then, when browsing aliases, the Xml factory is not able to find the target service in the map, because the alias definition contains the ., but not the stored service. The we got following false-positive

Service "<...>" is not registered in the container.

How

I added the same log for alias field that the one for id, and it fixed the issue locally. I added a test for this use case.

⚠️ I'm not sure why this . has been removed in first place, maybe there are other (untested?) side-effects... at least the discussion is opened 🙂

Thanks a lot for your work 🙇

@b-viguier b-viguier marked this pull request as ready for review May 29, 2024 09:12
@ondrejmirtes ondrejmirtes merged commit 2c3d666 into phpstan:1.4.x May 30, 2024
@ondrejmirtes
Copy link
Member

Thank you!

@b-viguier b-viguier deleted the fix-alias-to-inlined-services branch May 30, 2024 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants